home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PASSRC.ZIP / ENCAP2.PAS < prev    next >
Pascal/Delphi Source File  |  1991-02-04  |  3KB  |  116 lines

  1.                                      (* Chapter 14 - Program 2 *)
  2. program Encapsulation_2;
  3.  
  4. type
  5.    Box = object
  6.       constructor Init(len, wid : integer);
  7.       procedure Set_Data(len, wid : integer);
  8.       function Get_Area : integer;
  9.    private       (* Remove this if you are using TURBO Pascal 5.5, *)
  10.       length : integer;   (* and move both variables               *)
  11.       width  : integer;   (*                ahead of the methods.  *)
  12.    end;
  13.  
  14.    Pole = object
  15.       constructor Init(hei, dep : integer);
  16.       procedure Set_Data(hei, dep : integer);
  17.       function Get_Total_Length : integer;
  18.    private       (* Remove this if you are using TURBO Pascal 5.5, *)
  19.       height : integer;   (* and move both variables               *)
  20.       depth  : integer;   (*                ahead of the methods.  *)
  21.    end;
  22.  
  23.    constructor Box.Init(len, wid : integer);
  24.    begin
  25.       length := len;
  26.       width := wid;
  27.    end;
  28.  
  29.    constructor Pole.Init(hei, dep : integer);
  30.    begin
  31.       height := hei;
  32.       depth := dep;
  33.    end;
  34.  
  35.    procedure Box.Set_Data(len, wid : integer);
  36.    begin
  37.       length := len;
  38.       width := wid;
  39.    end;
  40.  
  41.    function Box.Get_Area : integer;
  42.    begin
  43.       Get_Area := length * width;
  44.    end;
  45.  
  46.    procedure Pole.Set_Data(hei, dep : integer);
  47.    begin
  48.       height := hei;
  49.       depth := dep;
  50.    end;
  51.  
  52.    function Pole.Get_Total_length : integer;
  53.    begin
  54.       Get_Total_length := height + depth;
  55.    end;
  56.  
  57. var Small, Medium, Large : Box;
  58.     Short, Average, Tall : Pole;
  59.  
  60. begin
  61.  
  62.    Small.Init(8,8);
  63.    Medium.Init(10,12);
  64.    Large.Init(15,20);
  65.    Short.Init(8,2);
  66.    Average.Init(12,3);
  67.    Tall.Init(17,4);
  68.  
  69.    (* Small.length := 7; *)
  70.  
  71.    WriteLn('The area of the small box is ',Small.Get_Area);
  72.    WriteLn('The area of the medium box is ',Medium.Get_Area);
  73.    WriteLn('The area of the large box is ',Large.Get_Area);
  74.    WriteLn('The overall length of the short pole is ',
  75.                                           Short.Get_Total_Length);
  76.    WriteLn('The overall length of the average pole is ',
  77.                                         Average.Get_Total_Length);
  78.    WriteLn('The overall length of the tall pole is ',
  79.                                            Tall.Get_Total_Length);
  80.    WriteLn;
  81.  
  82.    Small.Set_Data(6,7);
  83.    Short.Set_Data(6,1);
  84.    Average.Set_Data(11,2);
  85.    WriteLn('The area of the small box is ',Small.Get_Area);
  86.    WriteLn('The area of the medium box is ',Medium.Get_Area);
  87.    WriteLn('The area of the large box is ',Large.Get_Area);
  88.    WriteLn('The overall length of the short pole is ',
  89.                                           Short.Get_Total_Length);
  90.    WriteLn('The overall length of the average pole is ',
  91.                                         Average.Get_Total_Length);
  92.    WriteLn('The overall length of the tall pole is ',
  93.                                            Tall.Get_Total_Length);
  94.  
  95. end.
  96.  
  97.  
  98.  
  99.  
  100. { Result of execution
  101.  
  102. The area of the small box is 64
  103. The area of the medium box is 120
  104. The area of the large box is 300
  105. The overall length of the short pole is 10
  106. The overall length of the average pole is 15
  107. The overall length of the tall pole is 21
  108.  
  109. The area of the small box is 42
  110. The area of the medium box is 120
  111. The area of the large box is 300
  112. The overall length of the short pole is 7
  113. The overall length of the average pole is 13
  114. The overall length of the tall pole is 21
  115.  
  116. }